#ifndef __GLOBALMESSAGE_H_
#define __GLOBALMESSAGE_H_

#include <stdbool.h>

#define NameSize 20
#define ContentSize 1024
// 在线用户结构体
struct ClientInfo
{
    char ClientName[NameSize];
    int sock;
};
typedef struct ClientInfo CInfo;

/* 创建一个指向CInfo结构体的指针 */
CInfo *CreateCInfo(const char *name, int sock);

/* 自定义的打印回调函数 */
void PrintCInfo(void *p);

/* 回调函数 */
bool IsClientNameEqual(void *ClientPtr, void *clientName);
bool IsClientSockEqual(void *ClientPtr, void *sock);

/* 标志位枚举 */
enum Request
{
    LOGIN = -2,  // 登录
    SIGNUP = -1, // 注册
    CHAT = 1,    // 私聊
    // BROADCAST,   // 广播
    ONLINELIST, // 在线列表
    SENDFILE,   // 发送文件
    MYCLOUD,    // 我的网盘
    FRIEND,     // 好友管理
    GROUPCHAT,  // 群聊管理

    FILELIST = 128, // 查看网盘文件列表
    UPLOAD,         // 上传
    DOWNLOAD,       // 下载

    ADDFRIEND = 228, // 添加好友
    DELFRIEND,       // 删除好友
    SHOWFRIEND,      // 展示好友列表
    FRIENDREQUEST,   // 查看好友请求
    ISFREIEND,       // 是否同意好友请求

    GREATEGROUP = 338, // 创建群聊
    DELETEGROUP,       // 删除群聊
    JOINGROUP,         // 加入群聊
    LEAVEGROUP,        // 退出群聊
    CHATGROUP,         // 群聊

};
// 信息结构体
struct GlobalMessage
{
    char FromName[NameSize];   // 信息来源
    char ToName[NameSize];     // 信息目标
    char Content[ContentSize]; // 信息主体
    int flag;                  // 功能标志位
};

typedef struct GlobalMessage MSG;

#endif